package PenTest.ByteDance;

/**
 * <p>
 * <p/>
 *
 * @author zhangchengwei1
 * @since 2024/7/10 19:21
 */
import java.util.LinkedList;
import java.util.Scanner;
public class Poker {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String line = in.nextLine();
        String[] str = line.split(" ");
        int[] nums = new int[str.length];
        for(int i=0;i<str.length;i++)
            nums[i]=Integer.parseInt(str[i]);
        sort(nums);


    }

    public static void sort2(int[] pokers) {
        // 正向操作过程, 将手中的牌放到桌子上
        // 第一步先创建一个链表
        LinkedList<Integer> pokerList = new LinkedList<>();
        for (int poker : pokers) {
            pokerList.add(poker);
        }
        //声明一个新的容器，在这里可以理解成桌子
        LinkedList<Integer> newPokers2 = new LinkedList<>();
        for (int i = 0; i < pokers.length; i++) {
            //将手牌中的第一张放在桌子上
            newPokers2.add(pokerList.pollFirst());
            //假如这是最后一次循环手牌已经没有了就不需要进入这个判断了
            if (pokerList.size() > 0) {
                //将第一张放在牌堆的最后
                pokerList.addLast(pokerList.pollFirst());
            }
        }
        //循环打印到控制台，
        newPokers2.forEach(System.out::println);
    }

    /**
     * 这里的操作是从桌子把牌拿回到手上
     * 从桌子 到 手上 int[] t = {13,12,11,10,9,8,7,6,5,4,3,2,1};
     * 返回 {1,12,2,8,3,11,4,9,5,13,6,10,7}
     *
     * @param pokers
     */
    public static void sort(int[] pokers) {
        // 反向操作, 将桌子上的牌变到手上
        // 创建一个链表
        LinkedList<Integer> pokerList = new LinkedList<>();
        for (int poker : pokers) {
            pokerList.add(poker);
        }
        //声明一个目标容器，理解成手
        LinkedList<Integer> newPokers2 = new LinkedList<>();
        for (int i=pokerList.size()-1;i>=0;i--) {
            //判断手上的牌是否大于1张
            if (newPokers2.size() > 1) {
                //如果大于一张，则把手牌的最后一张放在最上面
                newPokers2.addFirst(newPokers2.pollLast());
            }
            //从桌子上拿一张牌放在手上
            newPokers2.addFirst(pokerList.get(i));
        }
        //循环打印到控制台，
        newPokers2.forEach(System.out::println);
    }

}
